/*
 * @Author: c
 * @Date: 2023-12-27 22:46:00
 * @LastEditTime: 2024-01-06 03:28:09
 * @LastEditors: c
 * @Description: 
 * @FilePath: \music-web-backend\src\core\user\dto\search-user.dto.ts
 * https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// Copyright 2023 Administrator
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// 
//     http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import { Transform } from "class-transformer";
import { isNumber, toNumber } from 'lodash'
import { Allow, IsInt, IsString, IsOptional, IsIn } from "class-validator";
import { PageDto } from "src/common/dto/page.dto";
import { isNumberString } from "src/common/utils";

export class UserPageQuery extends PageDto {
    //关键字(用户名/昵称/手机号)
    // @IsString({message:'查询字段必须是字符串'})
    @Allow()
    keywords: string;

    //用户状态
    // @IsInt({message:'状态类型必须是数字'})
    @Transform((value) => {
        if (isNumberString(value)) {
            return +value
        }

        return value
    })
    @IsIn([0, 1, '', undefined, null], { message: "用户状态参数不正确" })
    status: number;


    //创建时间-开始时间
    // @IsString({message:'开始时间必须是字符串'})
    @Allow()
    startTime: string;

    //创建时间-结束时间
    // @IsString({message:'结束时间必须是字符串'})
    @Allow()
    endTime: string;
}